A database system, file system, page cache, virtual machine monitor, write-back server flash cache, etc. typically include one or more buffer writer processes. The function of a buffer writer process is to write data from a buffer cache into the backend storage system of a storage network in order to free up buffer space.
The buffer writer may scan the content of the buffer cache to gather candidate memory blocks for writing to the backend storage system. Typically, the buffer writer will attempt to merge appropriate memory blocks to reduces the number of write operations performed on the backend storage system. However, most memory blocks end up being unmergable, thus unfortunately results in a stream of single block random writes operations being performed on the storage network.